<?php

declare(strict_types=1);

namespace App\Common\Dto;

use App\Common\Constants\PayMethodConstants;

class PaymentDto
{
    /**
     * 用户ID
     * @var int
     */
    private mixed $uid;

    /**
     * 订单编号
     * @var string
     */
    private string $orderNo;

    /**
     * 支付金额
     * @var float
     */
    private float $payAmount;

    /**
     * 支付方式
     * @var int
     */
    private mixed $payWay;

    /**
     * 支付描述
     * @var string
     */
    private string $subject;

    /**
     * 支付回调通知地址
     * @var string
     */
    private string $notifyUrl;

    /**
     * 支付返回地址
     * @var string
     */
    private string $returnUrl;

    private ?int $orderId = null;


    private string $payMethod = PayMethodConstants::WEB;

    public function getUid(): mixed
    {
        return $this->uid;
    }

    public function setUid(mixed $uid): void
    {
        $this->uid = $uid;
    }


    public function getOrderNo(): string
    {
        return $this->orderNo;
    }

    public function setOrderNo(string $orderNo): void
    {
        $this->orderNo = $orderNo;
    }

    public function getPayAmount(): float
    {
        return $this->payAmount;
    }

    public function setPayAmount(float $payAmount): void
    {
        $this->payAmount = $payAmount;
    }

    public function getPayWay(): mixed
    {
        return $this->payWay;
    }

    public function setPayWay(mixed $payWay): void
    {
        $this->payWay = $payWay;
    }

    public function getSubject(): string
    {
        return $this->subject;
    }

    public function setSubject(string $subject): void
    {
        $this->subject = $subject;
    }

    public function getNotifyUrl(): string
    {
        return $this->notifyUrl;
    }

    public function setNotifyUrl(string $notifyUrl): void
    {
        $this->notifyUrl = $notifyUrl;
    }

    public function getReturnUrl(): string
    {
        return $this->returnUrl;
    }

    public function setReturnUrl(string $returnUrl): void
    {
        $this->returnUrl = $returnUrl;
    }

    public function getOrderId(): ?int
    {
        return $this->orderId;
    }

    public function setOrderId(?int $orderId): void
    {
        $this->orderId = $orderId;
    }

    public function getPayMethod(): string
    {
        return $this->payMethod;
    }

    public function setPayMethod(string $payMethod): void
    {
        $this->payMethod = $payMethod;
    }
}